class Test {
  _name = ''
  constructor (name) {
    this.name = name
  }
  static getFormtName () {
    return `${this.name}--- ashfdlkafs `
  }
  get name () {
    return this._name
  }
  set name (val) {
    console.log('set 赋值操作')
    this._name = val
  }
}

let test = new Test('lubai')
// console.log(test.name)
// console.log(Test.getFormtName())

const year = '2021'
const month = '11'
const day = '17'

const template = '${year}-${month}-${day}'
const context = {year, month, day}

function render(tem) {
  // let 
  // tem.replace(/\$\{(.+?)\}/g, (a,b,c)=>{
  //   console.log(a)
  //   console.log(b)
  //   console.log(c)
  //   console.log('------------')
    
  // })
  // var aaa = tem.match(/\$\{(.+)\}/g)
  // console.log('aaa',aaa)
  return function () {
    console.log(arguments)
    const params = arguments[0]
    var str = tem.replace(/\$\{(.+?)\}/g, (a,b,c)=>{
      console.log(a)
      console.log(b)
      console.log(c)
      console.log('------------')
      return params[b]
    })
    console.log('str===inner',str)
    return str
  }
}

// function getExecStrs (str) {
//   var reg = /\$\{(.+?)\}/g
//   var list = []
//   var result = null
//   do {
//       result = reg.exec(str)
//       result && list.push(result[1])
//   } while (result)
//   return list
// }

// const str = render(template)(context)
// console.log('str===end',str)

// var time_origin = Date.now()
// var time_str = 0
// function judgeTime1 () {
//   const t = Date.now()
//   const s = t-time_origin
//   // console.log(s)
//   if (s >= 1000) {
//     time_str+=1
//     console.log(time_str)
//   }
//   judgeTime1 ()
// }

//   judgeTime1()

// 迭代器实现
// var obj = {
//   num: 0,
//   [Symbol.iterator]: ()=>{
//     return {
//       next: ()=> {
//         obj.num++
//         if (obj.num <= 20) {
//           return {
//             value: obj.num,
//             done: false
//           }
//         } else {
//           return {
//             value: undefined,
//             done: true
//           }
//         }
//       }
//     }
//   }
// }

var obj = {
  0:1,
  1:2,
  2:3,
  length:3,
  [Symbol.iterator]: Array.prototype[Symbol.iterator]
}

for (const num of obj) {
  console.log(num)
}
